package com.ly.heart.domain.vo;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ly.common.core.domain.ActCurrentTaskVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

@Data
@ApiModel ( value = "销售出库单返回Vo" )
@JsonInclude ( JsonInclude.Include.ALWAYS )
@Accessors ( chain = true )
public class KingSaleOutInventoryVo implements Serializable {

    @ApiModelProperty ( "销售出库单id" )
    private String id;

    @ApiModelProperty ( "单据编号" )
    private String docCode;

    @ApiModelProperty ( "客户" )
    private String customerName;

    @ApiModelProperty ( "出库日期" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    private Date inventoryTime;

    @ApiModelProperty ( "物料明细Id" )
    private String materialDetailId;

    @ApiModelProperty ( "物料Id" )
    private String materialId;

    @ApiModelProperty ( "物料编码" )
    private String materialCode;

    @ApiModelProperty ( "物料名称" )
    private String materialName;

    @ApiModelProperty ( "联系电话" )
    private String telPhone;

    @ApiModelProperty ( "批号" )
    private String batchNum;

    @ApiModelProperty ( "行号" )
    private String lineNumber;

    @ApiModelProperty ( "应出数量" )
    private String receivableNum;

    @ApiModelProperty ( "出库数量" )
    private String receiptsNum;

    @ApiModelProperty ( "税率" )
    private String taxRate;

    @ApiModelProperty ( "单价" )
    private String price;

    @ApiModelProperty ( "含税单价" )
    private String containsTaxPrice;

    @ApiModelProperty ( "创建时间日期" )
    @JsonFormat ( pattern = "yyyy-MM-dd HH:mm:ss" )
    private Date createTime;

    @ApiModelProperty ( "税额" )
    private String taxAmount;

    @ApiModelProperty ( "金额" )
    private String amountMoney;

    @ApiModelProperty ( "价税合计" )
    private String totalTaxPrice = "0.0";

    @ApiModelProperty ( "税额(本位币)" )
    private String taxAmountBase;

    @ApiModelProperty ( "金额（本位币）" )
    private String amountMoneyBase;

    @ApiModelProperty ( "价税合计(本位币)" )
    private String totalTaxPriceBase;

    @ApiModelProperty ( "库存单位" )
    private String inventoryUnit;

    @ApiModelProperty ( "仓库id" )
    private String warehouseId;

    @ApiModelProperty ( "仓库编码" )
    private String warehouseCode;

    @ApiModelProperty ( "仓库名称" )
    private String warehouseName;

    @ApiModelProperty ( "仓位" )
    private String warehousePosition;

    @ApiModelProperty ( "仓位名称" )
    private String warehousePositionName;

    @ApiModelProperty ( "汇率" )
    private String exchangeRate;

    @ApiModelProperty ( "流程实例id" )
    private String instanceId;

    @ApiModelProperty ( "当下审批人" )
    private String approvedUser;

    @ApiModelProperty ( "审批内容" )
    private String remark;

    @ApiModelProperty ( "状态" )
    private String state;

    @ApiModelProperty ( "当前任务信息" )
    private ActCurrentTaskVo currentTask;
    /**
     * 以下为新增字段，需要单独处理
     */

    @ApiModelProperty ( "累计退货数量" )
    private String totalReturnNum;

    @ApiModelProperty ( "累计退货补货数量" )
    private String totalReturnReplenishNum;

    @ApiModelProperty ( "累计退货补货价税合计" )
    private String totalReturnReplenishTaxPrice;

    @ApiModelProperty ( "累计应收数量" )
    private String totalNumReceivable;

    @ApiModelProperty ( "累计应收价税合计" )
    private String totalTaxPriceReceivable;

    @ApiModelProperty ( "剩余应收数量" )
    private String surplusNumReceivable;

    @ApiModelProperty ( "剩余应收价税合计" )
    private String surplusTaxPriceReceivable;

    @ApiModelProperty ( "累计实收数量" )
    private String totalNumReceipts;

    @ApiModelProperty ( "累计应付单对应源单金额" )
    private String totalTaxPricePayable;

    @ApiModelProperty ( "累计应付单对应源单价税合计" )
    private String totalTaxPricePayableBase;

    @ApiModelProperty ( "剩余应付单对应源单金额价税合计" )
    private String surplusTaxPricePayable;

    @ApiModelProperty ( "金额" )
    private String moneyAmount;

    @ApiModelProperty ( "是否推送" )
    private Integer isSend;


}
